import { useState, useCallback } from 'react';
import axios from 'axios';
import { Toast } from 'antd-mobile';   // 移动端轻提示
import { message } from 'antd';        // PC 端轻提示

/**
 * 通用登录逻辑 Hook
 * @param {Object} options
 * @param {boolean} [options.isMobile]  是否为移动端，决定用哪个 Toast
 */
export default function useLogin(options = {}) {
  const { isMobile = false } = options;
  const [loading, setLoading] = useState(false);

  const toast = isMobile ? Toast : message;

  const login = useCallback(async (values) => {
    setLoading(true);
    try {
      // 这里用 mock 接口，替换成自己的地址
      const { data } = await axios.post('/api/login', values);
      toast.success('登录成功');
      return data;          // 返回给调用方做后续跳转
    } catch (e) {
      toast.fail(e?.response?.data?.message || '登录失败');
      return null;
    } finally {
      setLoading(false);
    }
  }, [toast]);

  return { loading, login };
}